/*
   CCL.H -  ccl.c prototypes, flex project 1/89 DrH
*/

extern  void ccladd( int, char) ;
extern  int cclinit( void) ;
extern  void cclnegate( int ) ;

/*
   DFA.H - dfa.c prototypes, FLEX project 1/89 DrH
*/

extern  int *epsclosure( int *, int *, int [], int *, int *) ;
extern  void increase_max_dfas( void) ;
extern  int snstods( int [], int, int [], int, int, int * ) ;
extern  int symfollowset( int [], int, int, int[] ) ;
extern  void sympartition( int [], int, int [], int [] ) ;

/*
   ECS.H - ecs.c prototypes, FLEX project 1/89 DrH

*/
extern  void ccl2ecl( void) ;
extern  int cre8ecs( int [], int [], int ) ;
extern  void mkeccl( char [], int, int [], int [], int) ;
extern  void mkechar( int, int [], int []) ;
/*
   MAIN.H - main.c prototypes, FLEX project 1/89 DrH
*/

extern  void flexend( int ) ;
extern  void flexinit( int, char **) ;
extern  void readin( void) ;
extern  void set_up_initial_allocations( void) ;
/*
   MISC.H  - misc.c prototypes for flex project. 1/89 DrH
*/

void action_out( void ) ;
char *allocate_array( int, int) ;
void bubble( int [], int ) ;
char clower( char ) ;
char *copy_string( char *str ) ;
void cshell( char [], int) ;
void dataend( void ) ;
void dataflush( void) ;
char *gettime( void) ;
void lerrif( char *, int) ;
void lerrsf( char *, char *) ;
void flexerror( char * ) ;
void flexfatal( char * ) ;
void line_directive_out( FILE *) ;
void mk2data( int) ;
void mkdata( int ) ;
int myctoi( char * ) ;
char myesc( char []) ;
int otoi( char * ) ;
char *reallocate_array( char *, int, int) ;
void skelout( void) ;
void transition_struct_out( int, int ) ;

/* misc.h */

/*
   NFA.H - nfa.c prototypes, FLEX project 1/89 DrH
*/

extern  void add_accept( int, int, int ) ;
extern  int copysingl( int, int ) ;
extern  void dumpnfa( int) ;
extern  int dupmachine( int ) ;
extern  int link_machines( int, int ) ;
extern  int mkbranch( int, int) ;
extern  int mkclos( int state ) ;
extern  int mkopt( int mach ) ;
extern  int mkor( int first, int second ) ;
extern  int mkposcl( int state ) ;
extern  int mkrep( int mach, int lb, int ub ) ;
extern  int mkstate( int sym ) ;
extern  void mkxtion( int statefrom, int stateto ) ;
/* nfa.h */

/*
    PARSE.H     - from "parse.y" via bison
*/

#ifndef YYLTYPE
typedef
  struct yyltype
    {
      int timestamp;
      int first_line;
      int first_column;
      int last_line;
      int last_column;
      char *text;
   }
  yyltype;

#define YYLTYPE yyltype
#endif

#define	YYACCEPT	return(0)
#define	YYABORT	return(1)
#define	YYERROR	goto yyerrlab
#ifndef YYSTYPE
#define YYSTYPE int
#endif
#define	CHAR	258
#define	NUMBER	259
#define	SECTEND	260
#define	SCDECL	261
#define	XSCDECL	262
#define	WHITESPACE	263
#define	NAME	264
#define	PREVCCL	265

extern void synerr( char *) ;
extern void yyerror( char *) ;

/* parse.h */
/*
   SYM.H - sym.c prototypes, FLEX project 1/89 DrH
*/

extern  int addsym(char *sym,char *str_def,int int_def,struct hash_entry * *table,int table_size);
extern  void cclinstal(char *ccltxt,int cclnum);
extern  int ccllookup(char *ccltxt);
extern  struct hash_entry *findsym(char *sym,struct hash_entry * *table,int table_size);
extern  int hashfunct(char *str,int hash_size);
extern  void ndinstal(char *nd,char *def);
extern  char *ndlookup(char *nd);
extern  void scinstal(char *str,int xcluflg);
extern  int sclookup(char *str);
/* sym.h */

/*
    TBLCMP.H    - tblcmp.c prototypes, FLEX project 1/89 DrH
*/


extern  void bldtbl(int *state,int statenum,int totaltrans,int comstate,int comfreq);
extern  void cmptmps(void );
extern  void expand_nxt_chk(void );
extern  int find_table_space(int *state,int numtrans);
extern  void genctbl(void );
extern  void gentabs(void );
extern  void genecs(void );
extern  void inittbl(void );
extern  void make_tables(void );
extern  void mkdeftbl(void );
extern  void mkentry(int *state,int numchars,int statenum,int deflink,int totaltrans);
extern  void mk1tbl(int state,int sym,int onenxt,int onedef);
extern  void mkprot(int *state,int statenum,int comstate);
extern  void mktemplate(int *state,int statenum,int comstate);
extern  void mv2front(int qelm);
extern  void ntod(void );
extern  void place_state(int *state,int statenum,int transnum);
extern  void stack1(int statenum,int sym,int nextstate,int deflink);
extern  int tbldiff(int *state,int pr,int *ext);

/* tblcmp.h */
